Mobile communication systems continue to grow in popularity and have become an integral part of both personal and business communications. Various mobile devices now incorporate Personal Digital Assistant (PDA) features such as calendars, address books, task lists, calculators, memo and writing programs, media players, games, etc. These multi-function devices usually allow electronic mail (email) messages to be sent and received wirelessly, as well as access the Internet via a cellular network and/or a wireless local area network (WLAN), for example.
With the continuing migration to mobile devices that generate these types of client jobs (i.e., Internet access requests, email processing jobs, etc.), there is a commensurate growth in the number of such jobs that service providers have to accommodate. This is in addition to the ever increasing number of client processing jobs generated by other client devices, such as desktop computers. While service providers continue to add additional data centers and servers to accommodate increasing processing loads, routing client jobs to appropriate data centers, and even servers within a given data center, to provide desired efficiencies is important.
As such, some form of load balancing is generally used to even out the processing load among different servers or data centers in communications systems. By way of example, one basic form of load balancing is round-robin load balancing. In accordance with this approach, the servers are arranged in some order, and client jobs are sequentially assigned to the next server in the order until the end is reached, and the process repeats from the beginning. Another load balancing approach is the least load approach, which simply means that when a new client job is received it is assigned to the system server which currently has the least or lightest processing load.
Another form of routing is hash routing. For example, typical hash routing may utilize hashes generated from source and destination addresses of a given job to assign a score or value for the given source-destination pair. By picking a highest or lowest score, for example, this arbitrarily assigns client jobs to respective servers.
Despite the advantages of such approaches, further techniques for load balancing among relatively large groups of servers would be useful in certain applications.